From cc3d7515f90a103d6dc223d58c147bd6742ef475 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Tue, 27 Mar 2007 16:33:26 +0100 Subject: [PATCH] Use the new blkback sysfs statistics/{rd,wr}_sect to get a more accurate bandwidth measurements for VBD I/O. Patch by Alastair Tse . Signed-off-by: Ewan Mellor --- tools/python/xen/xend/XendMonitor.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/tools/python/xen/xend/XendMonitor.py b/tools/python/xen/xend/XendMonitor.py index 1bc0cb26c2..a8d894c4ec 100644 --- a/tools/python/xen/xend/XendMonitor.py +++ b/tools/python/xen/xend/XendMonitor.py @@ -24,8 +24,8 @@ import re """Monitoring thread to keep track of Xend statistics. """ VBD_SYSFS_PATH = '/sys/devices/xen-backend/' -VBD_WR_PATH = VBD_SYSFS_PATH + '%s/statistics/wr_req' -VBD_RD_PATH = VBD_SYSFS_PATH + '%s/statistics/rd_req' +VBD_WR_PATH = VBD_SYSFS_PATH + '%s/statistics/wr_sect' +VBD_RD_PATH = VBD_SYSFS_PATH + '%s/statistics/rd_sect' VBD_DOMAIN_RE = r'vbd-(?P\d+)-(?P\d+)$' NET_PROCFS_PATH = '/proc/net/dev' @@ -51,14 +51,9 @@ VIF_DOMAIN_RE = re.compile(r'vif(?P\d+)\.(?P\d+):\s*' + PROC_NET_DEV_RE) PIF_RE = re.compile(r'^\s*(?Ppeth\d+):\s*' + PROC_NET_DEV_RE) -# The VBD transfer figures are in "requests" where we don't -# really know how many bytes per requests. For now we make -# up a number roughly could be. -VBD_ROUGH_BYTES_PER_REQUEST = 1024 * 8 * 4 - # Interval to poll xc, sysfs and proc POLL_INTERVAL = 2.0 - +SECTOR_SIZE = 512 class XendMonitor(threading.Thread): """Monitors VCPU, VBD, VIF and PIF statistics for Xen API. @@ -186,9 +181,8 @@ class XendMonitor(threading.Thread): usage_at = time.time() rd_stat = int(open(rd_stat_path).readline().strip()) wr_stat = int(open(wr_stat_path).readline().strip()) - rd_stat *= VBD_ROUGH_BYTES_PER_REQUEST - wr_stat *= VBD_ROUGH_BYTES_PER_REQUEST - + rd_stat *= SECTOR_SIZE + wr_stat *= SECTOR_SIZE if domid not in stats: stats[domid] = {} -- 2.30.2